{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "dfc50157-1a6b-4415-9754-17d3abddc6e8",
   "metadata": {},
   "source": [
    "攻击分组密码。尽管事实是分组密码不应该和加密方案混淆, 攻击分组密码 $F$ 的（这里 将采用的）标准术语参见:\n",
    "\n",
    "(1) 唯密文攻击: 攻击者仅仅被给予一系列不知道输入 $\\left\\{x_i\\right\\}$ 的输出 $\\left\\{F_k\\left(x_i\\right)\\right\\}$ 。\n",
    "\n",
    "(2) 已知明文攻击: 攻击者被给予输入和输出对 $\\left\\{x_i, F_k\\left(x_i\\right)\\right\\}$ 。\n",
    "\n",
    "(3) 选择明文攻击：攻击者被给予对一系列攻击者自己随机选择的输入 $\\left\\{x_i\\right\\}$ 的 $\\left\\{x_i, F_k\\left(x_i\\right)\\right\\}_{\\text {。 }}$\n",
    "\n",
    "(4) 选择密文攻击: 攻击者被给予攻击者自己选择的 $\\left\\{x_2\\right\\}$ 和 $\\left\\{y_i\\right\\}$ 的 $\\left\\{x_i, F_k\\left(x_i\\right)\\right\\}$ 以及 $\\left\\{\\left(F_k^{-1}\\left(y_i\\right), y_i\\right\\}_{\\circ}\\right.$"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f9c99989-cc6c-4a1f-be7b-46307f3d3bc0",
   "metadata": {},
   "source": [
    "n比特随机置换"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2dd0b903-4738-4208-a340-805d0f2f3958",
   "metadata": {},
   "source": [
    "拥有分块长度 (即输入和输出长度) 为 $n$ 比特的随机置换将需要 $\\log \\left(2^{n} !\\right) \\approx n \\cdot 2^n$ 比特来表示, 当 $n>20$ 时, 这是不切实际的, 当 $n>50$ 时, 这完全不可行。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1abd2cc9-bf52-455b-9a8c-49e896dad904",
   "metadata": {},
   "source": [
    "这个结论的证明可以通过对置换的定义和排列组合进行分析得到。对于一个长度为 $n$ 的集合，它可以产生 $n!$ 种不同的排列方式。每一种排列方式都对应了一个置换，其中每一个元素被映射到了这个集合的另外一个位置上。因此，长度为 $n$ 比特的随机置换的可能性总数就是 $n!$。 "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "58c98c89-c25a-47ae-9958-152a77cabf23",
   "metadata": {},
   "source": [
    "这个结论是基于 Shannon 在密码学领域提出的熵的概念得出来的。熵可以理解为一个随机变量不确定性的度量，单位通常用比特来表示。对于长度为 $n$ 比特的随机置换，它的可能性总数是 $n!$。因此，为了表示一个随机置换，需要 $\\log_{2}(n!)$ 比特来存储。使用 Stirling 近似公式:$n ! \\approx \\sqrt{2 \\pi n}\\left(\\frac{n}{e}\\right)^{n}$，则 $\\log_{2} (n!) \\approx n \\log_{2} n - n + O(\\log_{2}n)$。因此，长度为 $n$ 比特的随机置换需要 $\\log_{2}(n!)$ 比特来表示，近似为 $n \\log_{2} n$ 比特。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "47396119-4aff-4aff-8141-4582492be5ec",
   "metadata": {
    "tags": []
   },
   "source": [
    "$\\log \\left(2^{n} !\\right) \\approx n \\cdot 2^n$"
   ]
  },
  {
   "attachments": {
    "4278c2a0-3e45-40c2-81af-baf3585be166.png": {
     "image/png": "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"
    }
   },
   "cell_type": "markdown",
   "id": "cf11a1c1-7760-40ce-ae6b-2640c6e053f6",
   "metadata": {},
   "source": [
    "![image.png](attachment:4278c2a0-3e45-40c2-81af-baf3585be166.png)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "f29c23a9-da99-4253-b116-c00f2feeec61",
   "metadata": {},
   "outputs": [],
   "source": [
    "a b c d\n",
    "ad2x/dt2+bdx/dt+c=d\n",
    "[01001100\n",
    "256*256\n",
    "[]\n",
    " k=(0.1,0.003,0.04,0.05)\n",
    "k=(0.1,0.003,0.04,0.05+1e-10)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5fa271f6-38bb-4332-9bd9-def20ea7c284",
   "metadata": {},
   "source": [
    "先代替，后置换（位置），注意S盒的可逆性和雪崩效应"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "02fa17ba-846d-4af5-aca6-7c61271d5d69",
   "metadata": {},
   "source": [
    "(1) $\\mathrm{S}$ 盒的设计要使得改变 $\\mathrm{S}$ 盒输入的单个比特就能改变 $\\mathrm{S}$ 盒输出的至少两个比特。\n",
    "\n",
    "(2) 混合置换的设计要使得任何给定的 $S$ 盒的输出比特都被传递到下一轮中不同的 $S$\n",
    "盒中。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b4b57d54-4143-45f8-966c-0e028553ebf9",
   "metadata": {},
   "source": [
    "在SP代替置换网络中，$\\mathrm{S}$ 盒的设计要使得改变 $\\mathrm{S}$ 盒输入的单个比特就能改变 $\\mathrm{S}$ 盒输出的至少两个比特，这是为什么，具体是如何实现的？"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "71c00406-8167-4d1b-96ee-a0636705291c",
   "metadata": {},
   "source": [
    "在 SP 代替置换网络中，S 盒的设计要使得改变 S 盒输入的单个比特就能改变 S 盒输出的至少两个比特。这是为了增加密码的安全性，使密码更难被破解。具体实现方法是通过使用非线性函数来实现 S 盒。S 盒是一种将输入映射到输出的函数，它通常由一些非线性函数组成。这些非线性函数可以是任何函数，只要它们满足 S 盒的设计要求即可。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b0bfc3e8-3f94-41f6-a3d7-635c9940fdaa",
   "metadata": {},
   "source": [
    "为了理解这是怎样产生雪崩效应的, 假设 $\\mathrm{S}$ 盒都是那种只要改变输入的一个比特, 就会 导致输出的恰好两个比特的变化, 而且混合置换也满足这个要求。具体而言, 假设 $S$ 盒有 4 个比特的输入/输出大小, 并且假设分组密码的分块长度为 128 比特。现在考虑当分组密码的 两个输入只有一个比特不同时, 将会发生什么:\n",
    "\n",
    "(1) 第一轮操作之后, 中间值恰有两个比特不同。这是因为和当前的子密钥异或, 会保持 中间值一个比特的差别, 所以除一个以外, 所有 $S$ 盒的输入都是相同的。在输入值不同的 $S$ 盒中, $\\mathrm{S}$ 盒的输出导致一个 2 比特的差别。结果中用混合置换改变了这些差别的位置, 但是仍 会保持 2 比特的差别。\n",
    "\n",
    "(2) 之前所提到的第二个特性, 在第一轮操作最后用到的混合置换将中间结果不同的两个 比特位置扩展到了第二轮操作中的两个不同的 $\\mathrm{S}$ 盒中。(即使子密钥和前一轮的结果异或后, 仍然是这样。) 因此, 在第二轮操作中, 有两个 $\\mathrm{S}$ 盒接收有单个比特不同的输入。与之前一 样, 于是第二轮的最后中间值有 4 比特的不同。\n",
    "\n",
    "(3) 继续同样的论证, 可以预见 8 比特的中间值在第三轮操作之后受到影响, 16 比特的 中间值在第四轮之后受到影响, 而在第 7 轮最后输出的 128 比特全部受到影响。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a6c8bf7f-2716-44f2-b111-856c17d7b25f",
   "metadata": {},
   "source": [
    "分组密码分块的128是怎样产生的？\n",
    "7轮\n",
    "2^7=128\n",
    "这里面相当于有一些乘方效应"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c0e9213b-2a64-46df-b11a-1bd24aaf8491",
   "metadata": {},
   "source": [
    "有人可能会期望 “最好的” 设计 $S$ 盒的方法是随机地选择它们（满足是单射和满射这一 限制条件)。有趣的是, 其实并不是这样。。例如, 考虑这样一种情况, 运行 4 比特输入的 $\\mathrm{S}$ 盒, 并令 $x$ 和 $x^{\\prime}$ 为两个不同的输入值。令 $y=S(x)$, 现在考虑随机选择 $y \\neq y^{\\prime}$ 作为 $S\\left(x^{\\prime}\\right)$ 的值。 则有 4 个字符串与 $y$ 相比仅有 1 个比特差别, 因此以概率 $4 / 15(>1 / 4)$ 选择 $y^{\\prime}$, 它与 $y$ 没有在两 个或更多的比特上有差别。当考虑所有输入时, 并且当需要多个 $S$ 盒时则会变得更糟。基于 此例, 得到的结论是：作为一个通用的规则, 最好是小心地设计拥有某种理想的属性（除了 上面给出的一些之外）的 $\\mathrm{S}$ 盒, 而不是廈目地随机选择。\n",
    "除了上述之外, 我们同样注意到随机选择的 $\\mathrm{S}$ 盒不是防御后面 5.6 节中攻击的最好办 法。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "7481ac7f-a1fb-434e-aa99-dcb222a693c9",
   "metadata": {},
   "outputs": [],
   "source": [
    "1110\n",
    "4 2^4=16\n",
    "y\n",
    "16-1=15\n",
    "4/15\n",
    "1110\n",
    "\n",
    "0110\n",
    "1010\n",
    "1101\n",
    "1111"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4113a66b-6b73-4e52-99d2-7c2bea88097a",
   "metadata": {},
   "source": [
    "1110\n",
    "1111\n",
    "\n",
    "4/(2^4-1)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "49320600-8f0d-4a74-bb19-9000aaa050fe",
   "metadata": {},
   "source": [
    "对轮数减少的代替置换网络的攻击。根据对伪随机置换的定义（见定义 3.23 ), 故手会被 给予一个随机预言机, 它要么是随机置换, 要么是给定的分组密码 (伴随随机选择的密钥)。 敌手想要确定是哪种情况。很明显, 如果敌手可以获得分组密码的秘密密钥, 那么它就可以 将其和随机置换区别开来。这样的攻击被称为完全攻破, 因为一旦知道秘密密钥, 安全便荡然无存。\n",
    "\n",
    "对单轮代替置换网络的攻击：令 $F$ 为一个单轮代替置换网络。下面证明一个攻击, 在此 攻击中, 针对随机选择的输入 $x$, 敌手得到一个输入/输出对 $(x, y)$, 很容易知道作为 $y=F_k(x)$ 的秘密密钥 $k$ 。敌手从输出值 $y$ 开始, 然后逆转混合置换和 $\\mathrm{S}$ 盒。这样做是因为混合置换和 $\\mathrm{S}$ 盒的说明是公开的。敌手从这些逆转中计算出的中间值是 $x \\oplus k$ (不失一般性, 假设主密钥在只有一轮的网络中被用作子密钥)。由于敌手还拥有输入 $x$, 它将可以立即获取秘密密钥 $k$ ，因此完全破解。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "eb3d7f2d-9562-459b-9382-8f2eb541bb62",
   "metadata": {},
   "outputs": [],
   "source": [
    "x -> y\n",
    "x xor y = k\n",
    "x xor k = y "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "2501a5f7-c4a7-41a5-b186-324c38b67490",
   "metadata": {},
   "outputs": [],
   "source": [
    "128\n",
    "2^7"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "192f92b4-6622-4179-8df0-e8278792263a",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "id": "7203599b-9c96-419f-bdb8-212e65680638",
   "metadata": {},
   "source": [
    "攻击三轮代替一置换网络。介绍一个较弱的攻击; 不用知道密钥, 只需表明将攻击三轮代 替置换网络和伪随机置换区别开来是很容易的。这个攻击是基于前面提到过的观察, 在三轮操 作之后雪崩效应还没有完成 (当然, 这取决于分组密码的分块长度和 $\\mathbf{S}$ 盒的输入/输出长度, 但 是如果是合理的参数就会是这样)。因此, 敌手只需要计算两个有单比特差异的字符串。三轮分 组密码会有这样的特性：输出的许多比特是相同的, 使得很容易和随机置换区分开。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "acd41c3b-6374-400b-9e4b-3a9ab6f7616f",
   "metadata": {},
   "source": [
    "11110011\n",
    "11110111\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c20f45d3-d6e8-4109-93d8-4c53c02b0801",
   "metadata": {},
   "source": []
  },
  {
   "cell_type": "markdown",
   "id": "1fe913e1-10b8-4175-8c9b-50556d6f130c",
   "metadata": {},
   "source": []
  },
  {
   "cell_type": "markdown",
   "id": "d08cede9-84fb-47a5-ba3d-d62306be0462",
   "metadata": {},
   "source": []
  },
  {
   "cell_type": "markdown",
   "id": "03910bd9-6bcd-4003-9cea-f2355916fabc",
   "metadata": {},
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
